﻿function setSelectionRange(input, selectionStart, selectionEnd) 
{
	if (input.setSelectionRange) 
	{
		input.focus();
		input.setSelectionRange(selectionStart, selectionEnd);
	}
	else if (input.createTextRange) 
	{
		var range = input.createTextRange();
		range.collapse(true);
		range.moveEnd('character', selectionEnd);
		range.moveStart('character', selectionStart);
		range.select();
	}
}

function replaceSelection (input, replaceString) 
{
	if (input.setSelectionRange) 
	{
		var selectionStart = input.selectionStart;
		var selectionEnd = input.selectionEnd;
		input.value = input.value.substring(0, selectionStart)+ replaceString + input.value.substring(selectionEnd);
    
		if (selectionStart != selectionEnd)
		{ 
			setSelectionRange(input, selectionStart, selectionStart + 	replaceString.length);
		}
		else
		{
			setSelectionRange(input, selectionStart + replaceString.length, selectionStart + replaceString.length);
		}
	}
	else if (document.selection) 
	{
		var range = document.selection.createRange();

		if (range.parentElement() == input) 
		{
			var isCollapsed = range.text == '';
			range.text = replaceString;

			 if (!isCollapsed)  
			 {
				range.moveStart('character', -replaceString.length);
				range.select();
			}
		}
	}
}
	
function editorKeys( Ev, Obj )
{
	var EVENT = Ev;
	if( window.event ) EVENT = window.event;

	if( EVENT.which == 9 || EVENT.keyCode == 9 )
	{
		EVENT.returnValue = false;
		if( EVENT.preventDefault ) EVENT.preventDefault();

		replaceSelection(Obj, "\t");
		setTimeout("document.getElementById('" + Obj.id + "').focus();", 0);
		return false;
	}
}


